
const formatDate = (date) => {
    let dd = String(date.getDate()).padStart(2, '0');
    let mm = String(date.getMonth() + 1).padStart(2, '0');
    let yyyy = date.getFullYear();
    return yyyy + '-' + mm + '-' + dd;
}

const locationList = {
    'gn': {
        'rmcs': ["深圳", "成都天府", "广州", "南京", "上海虹桥", "无锡", "中国香港", "重庆", "杭州", "南宁", "上海浦东", "西安", "北京首都", "大连", "合肥", "南通", "沈阳", "郑州"],
        'abcde': [
            "安康", "阿坝", "北京首都", "百色", "布尔津", "包头", "成都天府", "常州", "长白山", "朝阳", "池州", "东营", "丹东", "大同", "鄂尔多斯", 
            "安庆", "阿克苏", "白城", "保山", "巴中", "巴彦淖尔", "重庆", "长春", "昌都", "成都双流", "大连", "达州金垭", "稻城", "敦煌", 
            "安顺", "阿勒泰", "博乐", "毕节", "北京大兴", "北海", "常德", "长沙", "长治", "赤峰", "迪庆", "大理", "大庆", "恩施"
        ],
        'fghij': ['佛山', '福州', '甘南', '广汉', '赣州', '合肥', '黑河', '海口', '河池', '海拉尔', '和田', '建三江', '锦州', '济南', '揭阳', '鸡西', '抚远', '阜阳', '甘孜', '贵阳', '广元', '菏泽', '衡阳', '惠州', '怀化', '哈密', '黄山', '嘉峪关', '九江', '九寨沟', '井冈山', '富蕴', '广州', '格尔木', '桂林', '杭州', '汉中', '呼和浩特', '淮安', '哈尔滨', '邯郸', '吉安', '吉林', '景德镇', '佳木斯', '济宁'],
        'klmno': [
            "康定",
            "库车",
            "昆明",
            "克拉玛依",
            "喀什",
            "库尔勒",
            "陇南",
            "黎平",
            "连云港",
            "荔波",
            "临汾",
            "龙岩",
            "洛阳",
            "澜沧",
            "临沧",
            "兰州",
            "丽江",
            "拉萨",
            "吕梁",
            "临沂",
            "林芝",
            "六盘山",
            "六盘水",
            "柳州",
            "泸州",
            "梅县",
            "绵阳",
            "漠河",
            "芒市",
            "满洲里",
            "牡丹江",
            "南京",
            "南宁",
            "南通",
            "那拉提",
            "宁波",
            "南昌",
            "南阳",
            "南充"
        ],
        'pqret': [
            "攀枝花",
            "黔江",
            "且末",
            "庆阳",
            "青岛",
            "琼海",
            "泉州",
            "秦皇岛",
            "齐齐哈尔",
            "衢州",
            "若羌",
            "日照",
            "日喀则",
            "日喀则",
            "深圳",
            "上海虹桥",
            "上海浦东",
            "沈阳",
            "上饶",
            "松原",
            "山南",
            "三亚",
            "邵阳",
            "沙市",
            "石家庄",
            "思茅",
            "图木舒克",
            "塔城",
            "唐山",
            "吐鲁番",
            "天津",
            "太原",
            "天水",
            "铜仁",
            "台州",
            "腾冲",
            "通化",
            "通辽"
        ],
        'uvwxyz': [
            "无锡",
            "芜湖",
            "乌鲁木齐",
            "乌海",
            "西安",
            "厦门",
            "西昌",
            "营口",
            "银川",
            "烟台",
            "宜宾",
            "榆林",
            "中国台北",
            "张家界",
            "五大连池",
            "梧州",
            "温州",
            "乌兰察布",
            "仙女山",
            "西宁",
            "锡林浩特",
            "永州",
            "运城",
            "延安",
            "宜春",
            "中国香港",
            "中卫",
            "湛江",
            "巫山",
            "文山",
            "万州",
            "乌兰浩特",
            "邢台",
            "襄阳",
            "忻州",
            "伊尔施",
            "宜昌",
            "盐城",
            "伊宁",
            "郑州",
            "珠海",
            "昭通",
            "潍坊",
            "武汉",
            "威海",
            "武夷山",
            "兴义",
            "西双版纳",
            "徐州",
            "玉树",
            "扬州泰州",
            "延吉",
            "义乌",
            "中国澳门",
            "舟山",
            "遵义茅台"
        ],
    },
    'gj': {
        'rmcs': [],
        'abcde': [],
        'fghij': [],
        'klmno': [],
        'pqret': [],
        'uvwxyz': [],
    },
}

const remindList = {
    'gq': [
        '航班发生变动且符合免费改期条件可以在此改期。',
        '免费改期仅可办理一次，请合理安排行程。',
        '暂不支持代码共享航班，国内往返程客票、团队票、轮椅等特殊旅客等客票，如需办理请致电95361。',
    ],
    'tp': [
        '当您的航班发生延误或取消并符合免费退票条件时，您可免费办理退票。',
        '仅限购买深航实际承运国内航班的电子客票(479开头)。仅限单人单程成人客票办理。',
        '非深航官方渠道购买过保险的电子客票，保险费不予退还。',
        '客票如购买保险，可全额退保但退保后不得理赔。如果您有保险理赔的需求，请于理赔成功后再办理退票。',
        '已办理乘机手续的旅客请先取消值机再办理退票。',
        '如您的客票使用里程消费，退票后请联系会员服务热线4008808666返还里程。',
    ],
}

// 预定行程
const ydxc = () => {
    // 默认往返时间
    $("#startTime").val(formatDate(new Date()));
    $("#backTime").val(formatDate(new Date()));

    // 切换单返程
    $("input[name=type]").change(e => {
        if (e.target.dataset.id == 'type-wf') $("#backTimeFrom").show();
        else $("#backTimeFrom").hide();
    })

    // 交换地点
    $("#swapLocation").click((e) => {
        let start = $("#startLocation").val();
        let end = $("#endLocation").val();
        $("#startLocation").val(end);
        $("#endLocation").val(start);
    })

    // 点击输入框弹出地点选择
    $("#startLocation").focus(e => {
        let box = $("#select-location-box");
        box.removeClass("select-location-box-right");
        box.addClass("select-location-box-left");
        box.show();
    })
    $("#startLocation").click(e => {
        e.stopPropagation();
    })
    $("#endLocation").focus(e => {
        let box = $("#select-location-box");
        box.removeClass("select-location-box-left");
        box.addClass("select-location-box-right");
        box.show();
    })
    $("#endLocation").click(e => {
        e.stopPropagation();
    })
    $(window).click(e => {
        $("#select-location-box").hide();
    })
    $("#select-location-box").click(e => {
        e.stopPropagation();
    })

    // 点击地点
    let curLocation = 'gn';
    let curLocationCate = 'rmcs';
    // 渲染地点列表
    const renderLocation = () => {
        let str = '';
        locationList[curLocation][curLocationCate].forEach(e => {
            str += `<li data-id="${e}">` + e + '</li>';
        })
        $(".select-location").html(str);
        $(".select-location").children().click(ev => {
            let box = $("#select-location-box");
            if (box.hasClass("select-location-box-left"))
                $("#startLocation").val(ev.currentTarget.dataset.id);
            else
                $("#endLocation").val(ev.currentTarget.dataset.id);
            box.hide();
        })
    }
    // 点击分类
    $(".location-list").children().click(e => {
        $(".location-list").children().removeClass('active-location');
        $(e.currentTarget).addClass("active-location");
        curLocationCate = e.currentTarget.dataset.id;
        renderLocation();
    })
    // 点击 '国内' / '国际'
    $(".btn-list").children().click(e => {
        $(".btn-list").children().removeClass('select-btn');
        $(e.currentTarget).addClass("select-btn");
        curLocation = e.currentTarget.dataset.id;
        renderLocation();
    })
    renderLocation();

    // 点击 '立即预订'
    $("#ljyd").click(e => {
        let startLocation = $("#startLocation").val();
        let endLocation = $("#endLocation").val();
        let startTime = $("#startTime").val();
        let backTime = $("#backTime").val();
        let fromType = $("input[name=type]").val();

        let data = { startLocation, endLocation, startTime, backTime, fromType };
        console.log(data);
    })    
}

// 机票退改
const jptg = () => {
    // 切换 type
    let type = 'gq';
    $("#jptg-type-list").children().click((e) => {
        $("#jptg-type-list").children().removeClass('select-type');
        $(e.currentTarget).addClass("select-type");
        type = e.target.dataset.id;
        if (type == 'gq') {
            $("#jptg-kphm").show();
            $("#jptg-cfrq").hide();
            $("#jptg-zjhm").show();
            $("#jptg-pzhm").hide();
        } else {
            $("#jptg-kphm").hide();
            $("#jptg-cfrq").show();
            $("#jptg-zjhm").hide();
            $("#jptg-pzhm").show();
        }
        renderRemind();
    })

    // 温馨提示
    const renderRemind = () => {
        let str = '';
        remindList[type].forEach(item => {
            str += '<li>' + item + '</li>';
        })
        $("#jptg-remind").html(str);
    }
    renderRemind();

    $("#goTime").val(formatDate(new Date()));

    // 点击输入框弹出地点选择
    $("#startPoint").focus(e => {
        let box = $("#select-point-box");
        box.removeClass("select-location-box-right");
        box.addClass("select-location-box-left");
        box.show();
    })
    $("#startPoint").click(e => {
        e.stopPropagation();
    })
    $("#endPoint").focus(e => {
        let box = $("#select-point-box");
        box.removeClass("select-location-box-left");
        box.addClass("select-location-box-right");
        box.show();
    })
    $("#endPoint").click(e => {
        e.stopPropagation();
    })
    $(window).click(e => {
        $("#select-point-box").hide();
    })
    $("#select-point-box").click(e => {
        e.stopPropagation();
    })

    // 点击地点
    let curLocation = 'gn';
    let curLocationCate = 'rmcs';
    // 渲染地点列表
    const renderLocation = () => {
        let str = '';
        locationList[curLocation][curLocationCate].forEach(e => {
            str += `<li data-id="${e}">` + e + '</li>';
        })
        $(".select-point").html(str);
        $(".select-point").children().click(ev => {
            let box = $("#select-point-box");
            if (box.hasClass("select-location-box-left"))
                $("#startPoint").val(ev.currentTarget.dataset.id);
            else
                $("#endPoint").val(ev.currentTarget.dataset.id);
            box.hide();
        })
    }
    renderLocation();
    // 点击分类
    $(".point-list").children().click(e => {
        $(".point-list").children().removeClass('active-location');
        $(e.currentTarget).addClass("active-location");
        curLocationCate = e.currentTarget.dataset.id;
        renderLocation();
    })
    // 点击 '国内' / '国际'
    $(".jptg-btn-list").children().click(e => {
        $(".jptg-btn-list").children().removeClass('select-btn');
        $(e.currentTarget).addClass("select-btn");
        curLocation = e.currentTarget.dataset.id;
        renderLocation();
    })

    // 点击 '立即办理'
    $("#ljbl").click(e => {
        let startLocation = $("#startPoint").val();
        let endLocation = $("#endPoint").val();
        let startTime = $("#goTime").val();
        let username = $("#jptg-name").val();
        let idNumber = $("#idNumber").val();
        let pzNumber = $("#pzNumber").val();

        let data = { startLocation, endLocation, startTime, username, idNumber, pzNumber, type };
        console.log(data);
    })   
}

(function () {
    // 头部栏点击切换 type
    let type = 'ydxc';
    $("#select-list").children().click((e) => {
        $("#select-list").children().removeClass('select-item');
        $(e.currentTarget).addClass("select-item");
        type = e.target.dataset.id;
        $('.fly-from').hide();
        $('#' + type).show();
    })
    
    ydxc();
    jptg();
})()




// // 页面打开立即执行
// (function() {

//     const render = () => {
//         // 前端的搜索和分页，有后端就注释掉
//         let showList = list
//             .filter(e => e.name.toLocaleLowerCase().includes(searchInput.val().trim().toLocaleLowerCase()))
//             .splice((curPage - 1) * pagesize, pagesize);
    
//         if (showList.length == 0) {
//             userListBox.html(
//                         `<tr>
//                             <td></td>
//                             <td></td>
//                             <td></td>
//                             <td>列表空空如也</td>
//                             <td></td>
//                             <td></td>
//                         </tr>`
//                     )

//             firstBtn.addClass('btn-disabled');
//             prevBtn.addClass('btn-disabled');
//             nextBtn.addClass('btn-disabled');
//             lastBtn.addClass('btn-disabled');
//             totalPageBox.html(`0 / 0`);
//             jumpInput.val(0);
            
//             return;
//         }

//         let str = '';
//         showList.forEach(e => {
//             str += `<tr>
//                         <td>
//                             <div class="chk-option">
//                                 <div class="checkbox-fade fade-in-primary">
//                                     <label class="check-task">
//                                         <input data-id=${ e.user_id } type="checkbox" ${ e.isSelect ? 'checked=""' : '' }>
//                                         <span class="cr">
//                                             <i class="cr-icon fa fa-check txt-default"></i>
//                                         </span>
//                                     </label>
//                                 </div>
//                             </div>
//                             <div class="d-inline-block align-middle">
//                                 <img src="${ e.uimage }" alt="user image" class="img-radius img-40 align-top m-r-15">
//                             </div>
//                         </td>
//                         <td>${ e.name }</td>
//                         <td>${ e.password }</td>
//                         <td>${ e.phone }</td>
//                         <td>${ e.identity_card }</td>
//                         <td class="text-left">
//                             <div style="display: flex; gap: 8px;">
//                                 <button data-id=${ e.user_id } data-opt="edit" class="btn btn-primary btn-mini waves-effect waves-light" style="display: flex; align-items: center;">
//                                     <i data-id=${ e.user_id } data-opt="edit" class="ti-pencil-alt"></i>编辑
//                                 </button>
//                                 <button data-id=${ e.user_id } data-opt="delete" class="btn btn-danger btn-mini waves-effect waves-light" style="display: flex; align-items: center;">
//                                     <i data-id=${ e.user_id } data-opt="delete" class="ti-close"></i>删除
//                                 </button>
//                             </div>
//                         </td>
//                     </tr>`
//         })
//         userListBox.html(str);

//         let totalPage = Math.ceil(total / pagesize);
//         if (curPage == 1) {
//             firstBtn.addClass('btn-disabled');
//             prevBtn.addClass('btn-disabled');
//             nextBtn.removeClass('btn-disabled');
//             lastBtn.removeClass('btn-disabled');
//         } else if (curPage == totalPage) {
//             firstBtn.removeClass('btn-disabled');
//             prevBtn.removeClass('btn-disabled');
//             nextBtn.addClass('btn-disabled');
//             lastBtn.addClass('btn-disabled');
//         } else {
//             firstBtn.removeClass('btn-disabled');
//             prevBtn.removeClass('btn-disabled');
//             nextBtn.removeClass('btn-disabled');
//             lastBtn.removeClass('btn-disabled');
//         }
//         totalPageBox.html(`${ curPage } / ${ totalPage }`);
//         jumpInput.val(curPage);
//     }

//     let list = [
//         { isSelect: false, user_id: 1, name: 'cxd', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//         { isSelect: false, user_id: 2, name: 'lys', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//         { isSelect: false, user_id: 3, name: 'lyz', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//         { isSelect: false, user_id: 4, name: 'lls', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//         { isSelect: false, user_id: 5, name: 'zfx', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//         { isSelect: false, user_id: 6, name: 'zzj', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//         { isSelect: false, user_id: 7, name: 'ljl', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//         { isSelect: false, user_id: 8, name: 'lyh', password: '123456', uimage: 'assets/images/avatar-4.jpg', phone: '18207623799', identity_card: '441625200012122212' },
//     ]

//     let userListBox = $('#user-list');
//     let searchInput = $('#search-input');
//     let selectAllBox = $('#select-all');
//     let deleteBtn = $('#delete-btn');
//     let editFormBox = $('#form-box');
//     let overLay = $('#overlay');
//     let editBtn = $('#edit-btn');
//     let editCloseBtn = $('#edit-close-btn');
//     let editForm = {
//         user_id: $('#edit-id'),
//         name: $('#edit-name'),
//         password: $('#edit-password'),
//         phone: $('#edit-phone'),
//         identity_card: $('#edit-identity_card'),
//     }
//     // 分页按钮
//     let firstBtn = $('#first-btn');
//     let prevBtn = $('#prev-btn');
//     let nextBtn = $('#next-btn');
//     let lastBtn = $('#last-btn');
//     let jumpBtn = $('#jump-btn');
//     let jumpInput = $('#jump');
//     let pagesizeInput = $('#pagesize');
//     let totalPageBox = $('#total-page');
//     let curPage = 1;
//     let pagesize = 5;
//     let total = 101;

//     // 搜索
//     let searchFlag = false;
//     searchInput.on('input', e => {
//         if (searchFlag) return;
//         searchFlag = true;
//         // 300ms 只能请求一次
//         setTimeout(() => {
//             searchFlag = false;
//             curPage = 1;
//             requestData();
//             render();
//         }, 300);
//     })
    
//     // 批量删除
//     deleteBtn.click(e => {
//         if (deleteBtn.hasClass('btn-disabled'))
//             return alert('请先选择用户！');
    
//         // 选中的用户列表
//         let selectList = list.filter(e => e.isSelect);
//         let flag = confirm('您确定要删除' + selectList.map(e => (e.name)).join('、') + '吗？');
//         if (!flag) return;
    
//         // 向后端发送请求
//         // axios.delete('/user/del', {});
    
//         // 前端修改列表，重新渲染
//         list = list.filter(e => !e.isSelect);
//         render();
    
//         selectAllBox.prop('checked', false);
//         deleteBtn.addClass('btn-disabled');
//     })
    
//     // 全选
//     selectAllBox.on('change', e => {
//         let selectAll = e.target.checked;
//         list.forEach(e => e.isSelect = selectAll);
//         render();
        
//         if (selectAll) deleteBtn.removeClass('btn-disabled');
//         else deleteBtn.addClass('btn-disabled');
//     })
    
//     userListBox.click(e => {
//         // 单选
//         if (e.target.nodeName == 'INPUT') {
//             let id = e.target.dataset.id;
//             let user = list.find(e => e.user_id == id);
//             user.isSelect = !user.isSelect;
    
//             let selectAll = list.filter(e => e.isSelect).length;
//             selectAllBox.prop('checked', selectAll == list.length);
    
//             if (selectAll) deleteBtn.removeClass('btn-disabled');
//             else deleteBtn.addClass('btn-disabled');
//         }
//         // 编辑 / 删除
//         if (e.target.nodeName == 'BUTTON' || e.target.nodeName == 'I') {
//             let opt = e.target.dataset.opt;
//             if (!opt) return;
    
//             let id = e.target.dataset.id;
//             let user = list.find(e => e.user_id == id);
            
//             // 编辑
//             if (opt == 'edit') {
//                 editForm.user_id.val(user.user_id);
//                 editForm.name.val(user.name);
//                 editForm.password.val(user.password);
//                 editForm.phone.val(user.phone);
//                 editForm.identity_card.val(user.identity_card);
                
//                 editFormBox.show();
//                 overLay.show();
//             }
//             // 删除
//             if (opt == 'delete') {
//                 let flag = confirm('您确定要删除' + user.name + '吗？');
//                 if (!flag) return;
    
//                 // 向后端发送请求
//                 // axios.delete('/user/del/:id', {});
    
//                 list = list.filter(e => e.user_id != id);
//                 render();
//             }
//         }
//     })

//     // 取消编辑
//     editCloseBtn.click(e => {
//         editFormBox.hide();
//         overLay.hide();
//     })
//     // 保存编辑
//     editBtn.click(e => {
//         let data = {
//             user_id: editForm.user_id.val(),
//             name: editForm.name.val().trim(),
//             password: editForm.password.val().trim(),
//             phone: editForm.phone.val().trim(),
//             identity_card: editForm.identity_card.val().trim(),
//         }

//         if (data.name == '') return alert('姓名不能为空！');
//         if (data.password == '') return alert('密码不能为空！');
//         if (data.phone == '') return alert('联系电话不能为空！');
//         if (data.identity_card == '') return alert('身份证号不能为空！');

//         // 向后端发送请求
//         // axios.put('/user/edit/:id', {});
        
//         let user = list.find(e => e.user_id == data.user_id);
//         user.name = data.name;
//         user.password = data.password;
//         user.phone = data.phone;
//         user.identity_card = data.identity_card;
//         render();

//         editFormBox.hide();
//         overLay.hide();
//     })

//     // 首页、末页
//     firstBtn.click(e => {
//         if (firstBtn.hasClass('btn-disabled')) return;
//         curPage = 1;
//         requestData();
//         render();
//     })
//     lastBtn.click(e => {
//         if (lastBtn.hasClass('btn-disabled')) return;
//         curPage = Math.ceil(total / pagesize);
//         requestData();
//         render();
//     })
//     // 上一页、下一页
//     prevBtn.click(e => {
//         if (prevBtn.hasClass('btn-disabled')) return;
//         curPage--;
//         requestData();
//         render();
//     })
//     nextBtn.click(e => {
//         if (nextBtn.hasClass('btn-disabled')) return;
//         curPage++;
//         requestData();
//         render();
//     })
//     // 切换页数
//     pagesizeInput.on('change', e => {
//         pagesize = pagesizeInput.val();
//         curPage = 1;
//         requestData();
//         render();
//     })
//     // 跳转
//     jumpBtn.click(e => {
//         let val = jumpInput.val();
//         if (val > Math.ceil(total / pagesize) || val <= 0)
//             return jumpInput.val(curPage);
//         curPage = val;
//         requestData();
//         render();
//     })

//     // 请求数据并渲染
//     const requestData = () => {
//         let data = { curPage, pagesize, search: searchInput.val().trim() };
//         console.log(data);

//         // axios.get('/user/list', data);
//         let res = { code: 200, data: { list: [], total: 101 }, msg: '获取数据成功' };

//         // 使用时下面去掉注释
//         // total = res.data.total;
//         // list = res.data.list.map(e => ({ isSelect: false, ...e }));
        
//         render();
//     }

//     // 请求数据
//     // requestData();

//     // 渲染列表
//     render();
// })()